package com.lsht.system.service.siwei;

import com.lsht.common.core.domain.AjaxResult;
import com.lsht.common.core.domain.model.LoginUser;
import com.lsht.system.domain.siwei.PointShowhidden;
import com.lsht.system.domain.siwei.SiweiPoint;
import com.lsht.system.domain.siwei.SiweiPointDetails;
import com.lsht.system.domain.siwei.business.SiweiVideo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 点位记录管理Service接口
 *
 * @author zyc
 * @date 2024-08-14
 */
public interface SiweiPointDetailsService {
    /**
     * 新增点位记录管理
     *
     * @param siweiPointDetails 点位记录管理
     * @param file
     * @param loginUser
     * @return 结果
     */
    public int genAdd(SiweiPointDetails siweiPointDetails, List<MultipartFile> file, LoginUser loginUser);
    /**
     * 删除点位记录管理信息
     *
     * @param id 点位记录管理主键
     * @return 结果
     */
    public int genDeleteById(List<String> idList);
    /**
     * 修改点位记录管理
     *
     * @param siweiPointDetails 点位记录管理
     * @return 结果
     */
    public int genUpdateById(SiweiPointDetails siweiPointDetails);
    /**
     * 查询点位记录管理列表
     *
     * @param siweiPointDetails 点位记录管理
     * @return 点位记录管理集合
     */
    public List<SiweiPointDetails> genQueryList(SiweiPointDetails siweiPointDetails);

    /**
     * 根据id查询点位记录详情信息
     * @param siweiPointDetails
     * @return
     */
    SiweiPointDetails genQueryById(SiweiPointDetails siweiPointDetails);

    /**
     * 新增点位记录管理app端使用
     * @param siweiPointDetails
     * @param loginUser
     * @return
     */
    int addPointDetailsByApp(SiweiPointDetails siweiPointDetails, LoginUser loginUser);

    /***
     * 大屏查询填报记录为异常的数据
     * @param siweiPointDetails
     * @return
     */
    List<SiweiPointDetails> pointDetailsByAbnormal(SiweiPointDetails siweiPointDetails);

    /**
     * 大屏查询点位为隐患提报的数据
     * @param SiweiPointDetails
     * @return
     */
    List<SiweiPointDetails> pointByAbnormal(SiweiPointDetails SiweiPointDetails);

    /**
     * 巡检记录查询
     * @param siweiPointDetails
     * @return
     */
    List<SiweiPointDetails> inspectionRecord(SiweiPointDetails siweiPointDetails);

    int editPointStatus(PointShowhidden pointShowhidden);

    SiweiVideo addDetailsVideo(MultipartFile file);

    AjaxResult getGrowthRate(SiweiPoint siweiPoint);

}
